Techniques for Software Thread Integration in Real-Time Embedded Systems

نویسندگان

  • Alexander G. Dean
  • John Paul Shen
چکیده

Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works, must be obtained from the IEEE. Abstract This paper presents how to perform thread integration to provide low-cost concurrency for general-purpose microcontrollers and microprocessors. A post-pass compiler interleaves multiple threads of control at the machine instruction level for concurrent execution on a uniproces-sor and provides very fine-grain multithreading without context switching overhead. Such efficient concurrency allows implementation of real-time functions in software rather than dedicated peripheral hardware. We investigate a set of code transformations which allow systematic integration of a real-time guest thread into a host thread, producing an integrated thread which meets all real-time requirements. The thread integration concept and the associated code transformations have been applied to example functions chosen from three application domains to evaluate the method's feasibility. Embedded system designers must work within a design space tightly bounded by system requirements such as cost, size, weight, power and development time. They must trade off design costs with recurring costs, both of which vary over time for each application. Any real-time requirements place additional pressure on these constraints by adding hardware or software components dedicated to timely operation. Hardware solutions increase system size, cost, weight and power. Software solutions complicate timing analysis and verification, and are limited in performance by context switch and interrupt service routine response times. However, CPU chip technology and architecture improvements continue to lower the cost of CPU cycles needed to execute software by about 50% every 18 months. This paper demonstrates how thread integration (first introduced in [4]) can simplify embedded systems by eliminating hardware dedicated to real-time functions and transferring the work to software. Thread integration is a compiler technology which can automatically interleave multiple threads of computation at the machine instruction level and provide implicit multithreading on a generic uni-processor. This interleaving involves scheduling at the instruction level and eliminates context switch overhead to allow efficient operation on CPUs ranging from 8 to 64 bits. Three factors make thread integration difficult. First, the control flow behavior of the two threads may be very different and difficult to reconcile. We use a program representation which simplifies transformations needed to reconcile differing control flow structures. Second, manually integrating …

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Compiling for Fine-Grain Concurrency: Planning and Performing Software Thread Integration

Embedded systems require control of many concurrent real-time activities, leading to system designs which feature multiple hardware peripherals with each providing a specific, dedicated service. These peripherals increase system size, cost, weight, power and design time.Software thread integration (STI) provides low-cost thread concurrency on general-purpose processors by automatically interlea...

متن کامل

Thread Integration in Real - Time Embedded Systems

Personal use of this material is permitted. However, permission to reprint/republish this material for advertising or promotional purposes or for creating new collective works for resale or redistribution to servers or lists, or to reuse any copyrighted component of this work in other works, must be obtained from the IEEE. Abstract This paper presents how to perform thread integration to provid...

متن کامل

A High-Temperature Embedded Network Interface using Software Thread Integration

This document describes an experimental implementation of a communication network protocol bridge for a high-temperature (200° C / 392° F) application. The software uses a novel compilation technique called Software Thread Integration (STI) to interleave multiple real-time program threads for efficient concurrent execution, allowing an off-the-shelf, high-temperature, low-speed 8 bit microcontr...

متن کامل

Statically Calculating Secondary Thread Performance in ASTI Systems

This paper makes two contributions to Asynchronous Software Thread Integration (ASTI). First, it presents methods to calculate worst-case secondary thread performance statically, enabling real-time performance guarantees for the system. Second, it improves the run-time performance of integrated threads by partitioning the register file, allowing faster coroutine calls. We present experimental r...

متن کامل

Evolving real-time systems using hierarchical scheduling and concurrency analysis

We have developed a new way to look at real-time and embedded software: as a collection of execution environments created by a hierarchy of schedulers. Common schedulers include those that run interrupts, bottom-half handlers, threads, and events. We have created algorithms for deriving response times, scheduling overheads, and blocking terms for tasks in systems containing multiple execution e...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1998